#include <stdio.h>
#include <stdlib.h>

struct Student_type
{ char name[10];
   int num;
   int age;
   char addr[15];
};

int main(int argc, char const *argv[])
{
    // 使用二进制只读方式打开文件
    FILE *fp = fopen("stu.dat", "rb");
    if (fp == NULL)
    {
        printf("cannot open file stu.dat\n");
        exit(1);
    }
    // 文件位置标记默认是指向文件开头
    int i = 0;
    // 用循环依次读取第1、3、5、7、9位学生的记录
    for(i = 1; i <= 10; i += 2)
    {
        // 计算该学生记录在文件中的偏移量
        long offset = (i - 1) * sizeof(struct Student_type);
        // 用fseek函数定位
        fseek(fp, offset, SEEK_SET);
        struct Student_type stu;
        // 使用fread函数读取一条学生记录
        fread(&stu, sizeof(struct Student_type), 1, fp);
        // 将学生记录打印出来
        printf("%-10s %-4d %-4d %-15s\n", stu.name, stu.num, stu.age, stu.addr);
    }
    // 用完文件别忘了关闭
    fclose(fp);
    return 0;
}
